Coordenadas de Mundo - WC

void wdWindow(double xmin, double xmax, double ymin, double ymax); [em C]
wdWindow(xmin, xmax, ymin, ymax: number) [em Lua]

Configura uma janela no sistema de coordenadas de mundo a ser utilizada para transformar as coordenadas de mundo (com valores em números reais) em coordenadas de canvas (com valores em números inteiros). A janela padrão é uma aproximação em milímetros do canvas inteiro.

void wdGetWindow(double *xmin, double *xmax, double *ymin, double *ymax); [em C]
wdGetWindow() -> (xmin, xmax, ymin, ymax: number) [em Lua]

Consulta a janela corrente no sistema de coordenadas de mundo que está sendo utilizada para transformar coordenadas de mundo em coordenadas de canvas (e vice-versa).   Não é necessário fornecer todos os ponteiros de retorno, pode-se fornecer apenas para os valores desejados.

void wdViewport(int xmin, int xmax, int ymin, int ymax); [em C]
wdViewport(xmin, xmax, ymin, ymax: number) [em Lua]

Configura um viewport no sistema de coordenadas de canvas a ser utilizado para transformar coordenadas de mundo (com valores em números reais) em coordenadas de canvas (com valores em números inteiros). O viewport padrão é o canvas inteiro. Se o tamanho do canvas for modificado, o viewport não será atualizado automaticamente.

void wdGetViewport(int *xmin, int *xmax, int *ymin, int *ymax); [em C]
wdGetViewport() -> (xmin, xmax, ymin, ymax: number) [em Lua]

Consulta o viewport corrente no sistema de coordenadas de mundo que está sendo utilizado para transformar coordenadas de mundo em coordenadas de canvas (e vice-versa). Não é necessário fornecer todos os ponteiros de retorno, pode-se fornecer apenas para os valores desejados.

void wdWorld2Canvas(double xw, double yw, int *xv, int *yv); [em C]
wdWorld2Canvas(xw, yw: number) -> (xv, yv: number) [em Lua]

Converte coordenadas de mundo em coordenadas de canvas. Não é necessário fornecer todos os ponteiros de retorno, pode-se fornecer apenas para os valores desejados.

void wdCanvas2World(int xv, int yv, double *xw, double *yw); [em C]
wdCanvas2World(xv, yv: number) -> (xw, yw: number) [em Lua]

Converte coordenadas de canvas em coordenadas de mundo. Não é necessário fornecer todos os ponteiros de retorno, pode-se fornecer apenas para os valores desejados.


Atributos em WC

void wdStipple(int w, int h, unsigned char *fgbg, double w_mm, double h_mm); [em C]
wdStipple(stipple: stipple_tag, w_mm, h_mm: number) [em Lua]

Permitem especificar o stipple em coordenadas de mundo. É criado um outro stipple que terá o tamanho em pixels correspondente ao tamanho em milimetros especificado. O uso desta função pode acarretar em stipples muito grandes ou muito pequenos.

void wdPattern(int w, int h, long int *color, double w_mm, double h_mm); [em C]
wdPattern(pattern: pattern_tag, w_mm, h_mm: number) [em Lua]

Permitem especificar o pattern em coordenadas de mundo. É criado um outro pattern que terá o tamanho em pixels correspondente ao tamanho em milimetros especificado. O uso desta função pode acarretar em patterns muito grandes ou muito pequenos.


Funções Auxiliares em WC

void wdHardcopy(cdContext* ctx, void *data, cdCanvas *cnv, void(*draw_func)(void)); [em C]
wdHardcopy(ctx: number, data: string or userdata, cnv: canvas_tag, draw_func: function) [em Lua]

Cria um novo canvas, o ativa, prepara Window e Viewport de acordo com o canvas fornecido, mantendo razão de aspectos e fazendo com que o desenho ocupe a maior área possível no novo canvas, chama a função de desenho (que deve utilizar rotinas em WC) e por fim remove o novo canvas.